 ID Division.
 Program-ID. ccc.
 Environment Division.
 Data Division.
 01  zahl pic 9.
     88 zahlok VALUE 1,2,0.
     88 zahl2ok VALUE 1,2,3,4.
 01  betrag1 pic 9(10)V99.
 01  betrag2 pic 9(10)V99.
 01  betrag1-out pic z(9)9.99.
 01  betrag2-out pic z(9)9.99.
 01  Yen pic 9(7)V99.
 01  Dollar pic 9(7)V99.
 01  Pfund pic 9(7)V99.
 01  SFR pic 9(7)V99.
 Procedure Division.
 main.
     perform with test after until zahl = 0
     perform with test after until zahlok
     perform menu1
     accept zahl from console
     if not zahlok
     display 'Fehler!!!' upon console
     end-if
     end-perform
     evaluate zahl
     when 1
     perform menu2
     perform betrag
     perform rechnen1
     when 2
     perform menu2
     perform betrag
     perform rechnen2
     end-evaluate
     end-perform
     stop-run.

 menu1.
     display 'Euro in Fremdwaehrung...1' upon console
     display 'Fremdwaehrung in Euro...2' upon console
     display 'Ende....................0' upon console.

 menu2.
     perform with test after until zahl2ok
     display 'Fremdwaehrung:' upon console
     display 'Yen..........1' upon console
     display 'Dollar.......2' upon console
     display 'Pfund........3' upon console
     display 'SFR..........4' upon console
     accept zahl2 from console
     if not zahl2ok
     display 'Fehler!!!' upon console
     end-if
     end-perform.

 betrag.
     display 'Gib den Betrag ein: ' upon console
     accept betrag1 from console.

 rechnen1.
     move betrag1 to betrag2
     evaluate zahl2
     when 1
     multiply betrag1 by yen
     move betrag1 to betrag1-out
     move betrag2 to betrag2-out
     display betrag2-out 'Euro sind' betrag1-out 'Yen'
     upon console
     when 2
     multiply betrag1 by Dollar
     move betrag1 to betrag1-out
     move betrag2 to betrag2-out
     display betrag2-out 'Euro sind' betrag1-out 'Dollar'
     upon console 
     when 3
     multiply betrag1 by Pfund
     move betrag1 to betrag1-out
     move betrag2 to betrag2-out
     display betrag2-out 'Euro sind' betrag1-out 'Pfund'
     upon console
     when 4
     multiply betrag1 by SFR
     move betrag1 to betrag1-out
     move betrag2 to betrag2-out
     display betrag2-out 'Euro sind' betrag1-out 'SFR'
     upon console
     end-evaluate.

 rechnen2.
     move betrag1 to betrag2
     evaluate zahl2
     when 1
     divide betrag1 by yen giving betrag1-out
     move betrag2 to betrag2-out
     display betrag2-out 'Yen sind' betrag1-out 'Euro'
     upon console
     when 2
     divide betrag1 by Dollar giving betrag1-out
     move betrag2 to betrag2-out
     display betrag2-out 'Dollar sind' betrag1-out 'Euro'
     upon console 
     when 3
     divide betrag1 by Pfund giving betrag1-out
     move betrag2 to betrag2-out
     display betrag2-out 'Pfund sind' betrag1-out 'Euro'
     upon console
     when 4
     divide betrag1 by SFR giving betrag1-out
     move betrag2 to betrag2-out
     display betrag2-out 'SFR sind' betrag1-out 'Euro'
     upon console
     end-evaluate.

